<?php
/**
 * Description of PacoteLanceAction
 *
 * @author Ricardo Krieg
 */
class PacoteLanceAction extends ActionDefault{

    private $pacoteLanceService;

    public static $VIEW_PACOTE_LANCE = "view/pacoteLance/";

    function __construct() {
        parent::__construct();
        $this->setValueOutput("pacoteLanceMenu", "current");
        $this->pacoteLanceService = new PacoteLanceService();
    }
    
    public function getView() {
        return PacoteLanceAction::$VIEW_PACOTE_LANCE;
    }

    public function buscar() {

    }

    public function cadastro() {       
    }

    public function detalhes($pacoteLanceID) {

    }
    public function editar($pacoteLanceID) {
        try{

            if($pacoteLanceID <= 0){
                parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, "Código do Pacote de Lances Não Encontrado!!!"));
                parent::voltar();
                return;
            }

            $pacoteLanceBean = $this->pacoteLanceService->buscarPorID($pacoteLanceID);

            if($pacoteLanceBean == null){
                parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, "Pacote de Lances Não Encontrado!!!"));
                parent::voltar();
                return;
            }
            
            parent::show(PacoteLanceAction::$VIEW_PACOTE_LANCE."cadastro.tpl");

        }catch(Exception $ex){
            parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, $ex->getMessage()));
            parent::voltar();
        }
    }

    public function excluir($pacoteLanceID) {
        try{

            if($pacoteLanceID <= 0){
                parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, "Código do Pacote de Lances Não Encontrado!!!"));
                parent::voltar();
                return;
            }

            $pacoteLanceBean = $this->pacoteLanceService->buscarPorID($pacoteLanceID);

            if($pacoteLanceBean == null){
                parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, "Pacote de Lances Não Encontrado!!!"));
                parent::voltar();
                return;
            }

            $this->pacoteLanceService->salvar($pacoteLanceBean);

            parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_SUCCESS, Constantes::$STR_MSG_SUCCESS));
            parent::chain('PacoteLanceAction.listar');

        }catch(Exception $ex){
            parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, $ex->getMessage()));
            parent::voltar();
        }
    }

    public function listar() {
        $this->buscaListaPaginada();
    }

    public function tabela($pagina = 1, $quantidade = "", $valor = "") {
        $this->buscaListaPaginada($pagina, $quantidade, $valor);
        parent::show('view/pacoteLance/tabela.tpl');
    }
    
    public function salvar($quantidade, ) {
        try{

            $pacoteLanceBean = new PacoteLanceBean();
            
            $this->pacoteLanceService->salvar($pacoteLanceBean);

            parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_SUCCESS, Constantes::$STR_MSG_SUCCESS));
            parent::chain('PacoteLanceAction.listar');
            
        }catch(Exception $ex){
            parent::setValueOutput("msg", new MensagemMeta(Constantes::$MSG_ERROR, $ex->getMessage()));
            parent::voltar();            
        }
    }

    private function buscaListaPaginada($pagina = 1, $quantidade = "", $valor = ""){

        $pacoteLances = $this->pacoteLanceService->listar($pagina, $quantidade, $valor);
        $total = $this->pacoteLanceService->total($quantidade, $valor);

        parent::setValueOutput('pacoteLances', $pacoteLances);
        parent::setValueOutput('pagina', $pagina); 
        parent::setValueOutput('numPaginas', Util::calculaNumPaginas($total));
        
    }
}
?>
